<?php
/**
 * zip下载类文件
 * 打包成zip格式
 */
namespace Org\Util;

class FileToZip
{
    public function getFileSize($fileName)
    {
        return filesize($fileName)/1024;
    }

    public function toZip($fileList,$savePath)
    { 
        if(count($fileList) == 0)
        {
            return false;
        }
        
        foreach($fileList as $key => $value)
        {
            $fileList[$key] = '.'.$fileList[$key];
        }
        
        $savePath = '.'.$savePath;
        
        $zip = new \ZipArchive();
        if ($zip->open($savePath, \ZipArchive::OVERWRITE) === TRUE)
        {
            foreach($fileList as $key => $value)
            {
                $fileInfo= pathinfo($fileList[$key]);
                $zip->addFile($fileList[$key],$fileInfo['basename']);
            }
            $zip->close();
            return true;
        }
        else
        {
            return false;
            //unlink($savepath.$zipname.'.zip');
        }
    }
    
    public function downFileDelete($filePath)
    {
        $fileName = basename($filePath);
        $filePath = '.'.$filePath;
        
        //检查文件是否存在
        if (file_exists($filePath))
        {
            //打开文件
            $file = fopen($filePath,"r");
            //返回的文件类型
            Header("Content-type: application/octet-stream");
            //按照字节大小返回
            Header("Accept-Ranges: bytes");
            //返回文件的大小
            Header("Accept-Length: ".filesize($filePath));
            //这里对客户端的弹出对话框，对应的文件名
            Header("Content-Disposition: attachment; filename=".$fileName);
            //修改之前，一次性将数据传输给客户端
            echo fread($file, filesize($filePath));
            //修改之后，一次只传输1024个字节的数据给客户端
            //向客户端回送数据
            $buffer=1024;//
            //判断文件是否读完
            while (!feof($file)) 
            {
                //将文件读入内存
                $file_data=fread($file,$buffer);
                //每次向客户端回送1024个字节的数据
                echo $file_data;
            }
            fclose($file);
            
            unlink($filePath);
        }
        else 
        {
            echo "对不起,您要下载的文件不存在";
        }
    }
}